// List2D := Object clone
List2D := list()
List2D dim := method(x, y,
    if(isEmpty, nil, empty)
    for(i, 1, x,
        append(
            temp := list()
            for(j, 1, y, temp append(0))
        )
    )
)

List2D set := method(x, y, val, at(x) atPut(y, val))
List2D get := method(x, y, at(x) at(y))

List2D dim(3, 4)
List2D println

List2D set(1, 1, 5)
List2D println

List2D get(1, 1) println
